
#include "CloudLog.h"
#define TAG			"MyTag"

int CloudLogGetTid(void){									// 获取线程TID
	return GetCurrentThreadId();							// 返回线程TID
}
int CloudLogGetTime(CLOG_TIME* logtim){						// 获取本地时间及系统运行tick
	return (int)GetTickCount();								// 返回本地时间及系统运行tick
}



// main.c使用记事本打开，另存为编码UTF-8
// 在当前目录运行xmake可以快速编译出KeysUtf8.exe
// 生成文件 build\windows\x64\release\KeysUtf8.exe

int main(int argc, char* argv[]) {							// 用户程序入口
	printf("KeysGbk v1.00 (Demo log to CloudLog.exe)\n\n");
	
	if (0){													// 发现一个Bug，感觉兴趣的可以改为if (1){ 看看
		uint8_t* d8 = (uint8_t*)"日志第01";					// 在UTF-8编码获取内码“日志第01” 竟然是错误的
		printf("test:%02x%02x%02x%02x %02x%02x%02x%02x %02x%02x%02x%02x\n",d8[0],d8[1],d8[2],d8[3],d8[4],d8[5],d8[6],d8[7],d8[8],d8[9],d8[10],d8[11]);		
	}
	CLOGE(TAG, "这是一条Error日志");
	// 键值对风格输出："ll:E&lt:1eLKx9K7zPVFcnJvcsjV1r4=&an:KeysGbk&ta:MyTag&ti:30824"
	// CloudLog  显示："[16:02:32.275][E][KeysGbk][MyTag][这是一条Error日志]【用时0us】"

	CLOGW(TAG, "这是一条Warn日志");
	// 键值对风格输出："ll:W&lt:1eLKx9K7zPVXYXJuyNXWvg==&an:KeysGbk&ta:MyTag&ti:30824"
	// CloudLog  显示："[16:02:32.276][W][KeysGbk][MyTag][这是一条Warn日志]【用时701us】"

	CLOGI(TAG, "这是一条Info日志");
	// 键值对风格输出："ll:I&lt:1eLKx9K7zPVJbmZvyNXWvg==&an:KeysGbk&ta:MyTag&ti:30824"
	// CloudLog  显示："[16:02:32.276][I][KeysGbk][MyTag][这是一条Info日志]【用时441us】"

	CLOGD(TAG, "这是一条Debug日志");
	// 键值对风格输出："ll:D&lt:1eLKx9K7zPVEZWJ1Z8jV1r4=&an:KeysGbk&ta:MyTag&ti:30824"
	// CloudLog  显示："[16:02:32.277][D][KeysGbk][MyTag][这是一条Debug日志]【用时394us】"
	
	// Buffer日志可以将数组阵列显示到CloudLog.exe及保存到文件，在电脑直接跟踪数组阵列的内容
	uint8_t array[16];
	for (int index = 0; index < sizeof(array); index++) {
		array[index] = (uint8_t)index;
	}
	CLOGB(TAG, array, sizeof(array), "这是一条Buffer日志");
	// 键值对风格输出："ll:B&lt:1eLKx9K7zPVCdWZmZXLI1da+&lb:AAECAwQFBgcICQoLDA0ODw==&an:KeysGbk&ta:MyTag&ti:30824"
	// CloudLog  显示："[16:02:32.277][B][KeysGbk][MyTag][这是一条Buffer日志]【用时374us】"
	// 				   "0001020304050607 08090a0b0c0d0e0f" 	


	// Fixer日志主要用于跟踪动态变化的数据，固定位置显示
	for (int index = 0; index < 10; index++) {
		uint32_t tick = CloudLogGetTime(NULL);
		uint32_t minute = tick / (60 * 1000); 
		tick = tick % (60 * 1000); 		
		
		CLOGF(TAG, "Fixer日志第%d次 %02d:%02d.%03d", index, minute, tick/1000, tick%1000);
		// 键值对风格输出："ll:F&lt:tdowtM7P1Mq+Rml4ZXLI1da+&an:KeysGbk&ta:MyTag&ti:30824"
		// CloudLog  显示："Fixer日志第9次 8734:05.296"
		
		printf("Fixer:%d\n", index);
		Sleep(500);
	}
    return 0;
}

